package com.dqyt.app.mongo;

import com.dqyt.app.bean.Report;
import com.dqyt.app.bean.Sample;
import com.dqyt.khjc.bean.Work;
import com.mongodb.client.result.DeleteResult;
import com.mongodb.client.result.UpdateResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Component;

import java.util.List;

@Component
public class SampleDao {

    /**
     * 注入MongoTemplate
     */
    @Autowired
    protected MongoTemplate mongoTemplate;

    /**
     * 新建数据到数据库
     *
     * @return
     */
    public void save(Sample sample) {
        mongoTemplate.save(sample); // 保存数据到数据库
    }

    /**
     * 新建数据到数据库
     *
     * @return
     */
    public long delete(Sample sample) {
        DeleteResult deleteResult = mongoTemplate.remove(sample);
        return deleteResult.getDeletedCount();
    }


    /**
     * 新建数据到数据库
     *
     * @return
     */
    public long deleteById(String bh) {
      //  Query query=new Query(Criteria.where("bh").is(bh));
      //  long count = mongoTemplate.remove(query, Sample.class,"bh").getDeletedCount();

        Query query = Query.query(Criteria.where("bh").is(bh));
        DeleteResult deleteResult = mongoTemplate.remove(query, Sample.class);
        long res = deleteResult.getDeletedCount();
        return res;
    }

    /**
     * 查询样品列表信息分页 （老分页）
     *
     * @param addTime
     * @param type
     * @param bsbh
     * @return
     */
    public List<Sample> getSampleInfos(long addTime, int type, String bsbh, String erweima) {
        // 构建查询条件
        Query query = new Query();

        query = Query.query(Criteria.where("addTime").lt(addTime)).limit(10).with(Sort.by(Sort.Direction.DESC, "addTime"));

        if (type != 0) {
            query.addCriteria(new Criteria("type").is(type));
        }

        if (null != bsbh && !bsbh.equals("")) {
            query.addCriteria(new Criteria("bsbh").is(bsbh));
        }

        if (null != erweima && !erweima.equals("")) {
            query.addCriteria(new Criteria("erweima").is(erweima));
        }


        List<Sample> list = mongoTemplate.find(query, Sample.class, Sample.TableName); // 取得满足条件的数据
        return list;
    }

    /**
     * 查询这批任务单号中 有多少气瓶是充了气的
     * @param rwdbh
     * @return
     */
    public List<Sample> getReportByrwdbhOrCq(String rwdbh){
        // 构建查询条件
        Query query = new Query();
        query.addCriteria(new Criteria("type").is(2));
        query.addCriteria(new Criteria("rwdbh").is(rwdbh));
        List<Sample> list = mongoTemplate.find(query, Sample.class, Sample.TableName); // 取得满足条件的数据
        return list;

    }


    /**
     * 查询样品列表信息分页 （老分页）
     *
     * @param addTime
     * @param type
     * @param bsbh
     * @return
     */
    public List<Sample> getSampleInfos2(int pageNum, int pageSize, long addTime, int type, String bsbh, String erweima) {
        // 构建查询条件
        Query query = new Query();

        //query = Query.query(Criteria.where("addTime").lt(addTime)).limit(10).with(Sort.by(Sort.Direction.DESC, "addTime"));

        if (type != 0) {
            query.addCriteria(new Criteria("type").is(type));
        }

        if (null != bsbh && !bsbh.equals("")) {
            query.addCriteria(new Criteria("bsbh").is(bsbh));
        }

        if (null != erweima && !erweima.equals("")) {
            query.addCriteria(new Criteria("erweima").is(erweima));
        }

        query.limit(pageSize).skip(pageNum);
        query.with(Sort.by(Sort.Order.desc("addTime")));
        List<Sample> list = mongoTemplate.find(query, Sample.class, Sample.TableName); // 取得满足条件的数据
        return list;
    }


    /**
     * 查询样品列表信息分页 （老分页）
     *
     * @param addTime
     * @param type
     * @param bsbh
     * @return
     */
    public List<Sample> getSampleInfos3(int pageNum, int pageSize, long addTime, int type, String bsbh, String erweima,long wtfId,int sampleStatue) {
        // 构建查询条件
        Query query = new Query();

        //query = Query.query(Criteria.where("addTime").lt(addTime)).limit(10).with(Sort.by(Sort.Direction.DESC, "addTime"));

        if (type != 0) {
            query.addCriteria(new Criteria("type").is(type));
        }

        if (null != bsbh && !bsbh.equals("")) {
            query.addCriteria(new Criteria("bsbh").is(bsbh));
        }

        if (null != erweima && !erweima.equals("")) {
            query.addCriteria(new Criteria("erweima").is(erweima));
        }

        if (wtfId != 0) {
            query.addCriteria(new Criteria("wtfId").is(wtfId));
        }

        if (sampleStatue != 0) {
            query.addCriteria(new Criteria("sampleStatue").is(sampleStatue));
        }

        query.with(Sort.by(Sort.Order.desc("pxzd"),Sort.Order.desc("bsbh")));
        query.limit(pageSize).skip(pageNum);

        List<Sample> list = mongoTemplate.find(query, Sample.class, Sample.TableName); // 取得满足条件的数据
        return list;
    }



    public long updateJCR(Work work) {
        // 构建查询条件
        Query query = new Query();
        query = Query.query(Criteria.where("bsbh").is(work.bsbh));
        Update update = null;
        if (work.type == Sample.YP_TYPE_HXQ) {
            update = Update.update("respirator.jcrId", work.userId).set("respirator.jcr", work.userName);
        } else {
            update = Update.update("cylinders.jcrId", work.userId).set("cylinders.jcr", work.userName);
        }
        UpdateResult wr = mongoTemplate.updateFirst(query, update, Sample.class);
        return wr.getModifiedCount();
    }

    /**
     * 查询某条数据的详细信息
     * @param type
     * @param sbbh  设备编号
     * @param bsbh  表示编号
     * @param erweima
     * @return
     */
    public List<Sample> getSample(int type, String sbbh, String bsbh, String erweima) {
        // 构建查询条件
        Query query = new Query();

        if (type != 0) {
            query.addCriteria(new Criteria("type").is(type));
        }

        if (null != sbbh && !sbbh.equals("")) {
            query.addCriteria(new Criteria("sbbh").is(sbbh));
        }

        if (null != bsbh && !bsbh.equals("")) {
            query.addCriteria(new Criteria("bsbh").is(bsbh));
        }

        if (null != erweima && !erweima.equals("")) {
            query.addCriteria(new Criteria("erweima").is(erweima));
        }

        query.limit(10).with(Sort.by(Sort.Direction.DESC, "addTime"));

        List<Sample> list = mongoTemplate.find(query, Sample.class, Sample.TableName); // 取得满足条件的数据
        return list;
    }



    /**
     * 更具设备编号查询样品信息
     * @param type 类型
     * @param sbbh  设备编号
     * @return
     */
    public Sample getPcSampleBySbbh(int type, String sbbh){
        // 构建查询条件
        Query query = new Query();
        query.addCriteria(new Criteria("type").is(type));
        query.addCriteria(new Criteria("sbbh").is(sbbh));
        //降序
        query.limit(20).with(Sort.by(Sort.Direction.DESC, "addTime"));
        List<Sample> list = mongoTemplate.find(query, Sample.class, Sample.TableName); // 取得满足条件的数据
        if(list.size()>0){
            return  list.get(0);
        }else{
            return null;
        }
    }


    /**
     * 更具标识编号查询样品信息
     * @param bsbh
     * @return
     */
    public Sample getPcSampleByBsbh(String bsbh){
        // 构建查询条件
        Query query = new Query();
        query.addCriteria(new Criteria("bsbh").is(bsbh));
        query.limit(10).with(Sort.by(Sort.Direction.DESC, "addTime"));
        List<Sample> list = mongoTemplate.find(query, Sample.class, Sample.TableName); // 取得满足条件的数据
        if(list.size()>0){
            return  list.get(0);
        }else{
            return null;
        }
    }



    /**
     * 更具二维码查询最新的那条信息
     * @param erweima
     * @return
     */
    public Sample getSampleByQrcode(String erweima){
        // 构建查询条件
        Query query = new Query();
        query.addCriteria(new Criteria("erweima").is(erweima));
        query.limit(10).with(Sort.by(Sort.Direction.DESC, "addTime"));
        List<Sample> list = mongoTemplate.find(query, Sample.class, Sample.TableName); // 取得满足条件的数据
        if(list.size()>0){
            return  list.get(0);
        }else{
            return null;
        }
    }


    /**
     * 在面罩里面查
     * 更具标设备编号 查询最新的 样品信息
     * @param sbbh
     * @return
     */
    public Sample getPcSampleBySbbh(String sbbh){
        // 构建查询条件
        Query query = new Query();
        query.addCriteria(new Criteria("sbbh").is(sbbh));
        query.addCriteria(new Criteria("type").is(1));
        query.limit(10).with(Sort.by(Sort.Direction.DESC, "addTime"));
        List<Sample> list = mongoTemplate.find(query, Sample.class, Sample.TableName); // 取得满足条件的数据
        if(list.size()>0){
            return  list.get(0);
        }else{
            return null;
        }
    }


    /**
     * 在气瓶里面查
     * 更具标设备编号 查询最新的 样品信息
     * @param sbbh
     * @return
     */
    public Sample getPcSampleBySbbh2(String sbbh){
        // 构建查询条件
        Query query = new Query();
        query.addCriteria(new Criteria("sbbh").is(sbbh));
        query.addCriteria(new Criteria("type").is(2));
        query.limit(10).with(Sort.by(Sort.Direction.DESC, "addTime"));
        List<Sample> list = mongoTemplate.find(query, Sample.class, Sample.TableName); // 取得满足条件的数据
        if(list.size()>0){
            return  list.get(0);
        }else{
            return null;
        }
    }





    /**
     * 查询某条数据的详细信息
     *
     * @param bsbh
     * @return
     */
    public List<Sample> getSamplebypr(String bsbh, String erweima) {
        // 构建查询条件
        Query query = new Query();
        if (null != bsbh && !bsbh.equals("")) {
            query.addCriteria(new Criteria("bsbh").is(bsbh));
        }

        if (null != erweima && !erweima.equals("")) {
            query.addCriteria(new Criteria("erweima").is(erweima));
        }
        query.limit(10).with(Sort.by(Sort.Direction.DESC, "addTime"));

        List<Sample> list = mongoTemplate.find(query, Sample.class, Sample.TableName); // 取得满足条件的数据
        return list;
    }



    /**
     * 标识编号
     * @param bsbh
     * @return
     */
    public Sample getSampleById(String bsbh){
        // 构建查询条件
        Query query = new Query(new Criteria("bsbh").is(bsbh));
        Sample ret = mongoTemplate.findOne(query, Sample.class);
        return ret;
    }


    /**
     * 询某条数据的详细信息
     * @param bh
     * @return
     */
    public Sample getSampleByBH(String bh) {
        // 构建查询条件
        Query query = new Query(new Criteria("bh").is(bh));
        Sample ret = mongoTemplate.findOne(query, Sample.class);
        return ret;
    }



    /**
     * 分页查询样品
     * @param pageNum  页数
     * @param pageSize  每页条数
     * @param bsbh   标识编号
     * @param erweima  二维码
     * @param type  样品类型  1：呼吸器  2: 复合气瓶
     * @param sampleStatue    设备状态   1：已接受   2：检测中 3：检测不合格 4：合格 5：维修中 6:已废弃
     * @param wtfId  委托方id
     * @param sbbh  设备编号
     * @return
     */
    public List<Sample>  getSampleListPage(int pageNum, int pageSize, String bsbh, String erweima, int type, int sampleStatue,
                                           int wtfId,int wtfIdChi, String sbbh, String zzcsId,String rwdbh,String jcrId){
        // 构建查询条件
        Query query = new Query();
        if (null != bsbh && !bsbh.equals("")) {
            query.addCriteria(new Criteria("bsbh").is(bsbh));
        }
        if (null != erweima && !erweima.equals("")) {
            query.addCriteria(new Criteria("erweima").is(erweima));
        }

        if(type != 0){
            query.addCriteria(new Criteria("type").is(type));
        }

        if(sampleStatue>0){
            query.addCriteria(new Criteria("sampleStatue").is(sampleStatue));
        }
        if(wtfId>0){
            query.addCriteria(new Criteria("wtfId").is(wtfId));
        }

        if(wtfIdChi>0){
            query.addCriteria(new Criteria("wtfIdChi").is(wtfIdChi));
        }


        if(null != sbbh  && !sbbh.equals("")){
            query.addCriteria(new Criteria("sbbh").is(sbbh));
        }

        if(null != zzcsId  && !zzcsId.equals("")){
            query.addCriteria(new Criteria("zzcsId").is(zzcsId));
        }
        if(null != rwdbh  && !rwdbh.equals("")){
            query.addCriteria(new Criteria("rwdbh").is(rwdbh));
        }

        if(null !=jcrId && !"".equals(jcrId)){
            Criteria criteria2 = new Criteria();
            //检测人等于
            criteria2.orOperator(Criteria.where("respirator.jcrId").is(jcrId), Criteria.where("cylinders.jcrId").is(jcrId));
            query.addCriteria(criteria2);
        }

        query.with(Sort.by(Sort.Order.desc("pxzd"),Sort.Order.desc("bsbh")));
        query.limit(pageSize).skip(pageNum);


        List<Sample> list = mongoTemplate.find(query, Sample.class, Sample.TableName); // 取得满足条件的数据
        return list;
    }


    /**
     * 分页查询样品
     * @param pageNum  页数
     * @param pageSize  每页条数
     * @param bsbh   标识编号
     * @param erweima  二维码
     * @param type  样品类型  1：呼吸器  2: 复合气瓶
     * @param sampleStatue    设备状态   1：已接受   2：检测中 3：检测不合格 4：合格 5：维修中 6:已废弃
     * @param wtfId  委托方id
     * @param sbbh  设备编号
     * @return
     */
    public List<Sample>  getSampleMeListPage(int pageNum, int pageSize, String bsbh, String erweima, int type,
                                             int sampleStatue, int wtfId,int wtfIdChi, String sbbh, String zzcsId,String jcrId,String rwdbh ){
        // 构建查询条件
        Query query = new Query();
        if (null != bsbh && !bsbh.equals("")) {
            query.addCriteria(new Criteria("bsbh").is(bsbh));
        }
        if (null != erweima && !erweima.equals("")) {
            query.addCriteria(new Criteria("erweima").is(erweima));
        }

        if(type != 0){
            query.addCriteria(new Criteria("type").is(type));
        }

        if(sampleStatue>0){
            query.addCriteria(new Criteria("sampleStatue").is(sampleStatue));
        }
        if(wtfId>0){
            query.addCriteria(new Criteria("wtfId").is(wtfId));
        }
        if(wtfIdChi>0){
            query.addCriteria(new Criteria("wtfIdChi").is(wtfIdChi));
        }


        if(null != sbbh  && !sbbh.equals("")){
            query.addCriteria(new Criteria("sbbh").is(sbbh));
        }

        if(null != zzcsId  && !zzcsId.equals("")){
            query.addCriteria(new Criteria("zzcsId").is(zzcsId));
        }

        if(null != rwdbh  && !rwdbh.equals("")){
            query.addCriteria(new Criteria("rwdbh").is(rwdbh));
        }

        Criteria criteria = new Criteria();
        criteria.orOperator(Criteria.where("respirator.jcrId").is(jcrId), Criteria.where("cylinders.jcrId").is(jcrId));
        query.addCriteria(criteria);

        query.with(Sort.by(Sort.Order.desc("pxzd"),Sort.Order.desc("bsbh")));
        query.skip(pageNum).limit(pageSize);





        List<Sample> list = mongoTemplate.find(query, Sample.class, Sample.TableName); // 取得满足条件的数据
        return list;
    }


    /**
     * 补打二维码 查询列表  分页
     * @param pageNum
     * @param pageSize
     * @param bsbh
     * @param sbbh
     * @return
     */
    public List<Sample>  getSampleListPdewm(int pageNum, int pageSize, int type,String bsbh, String sbbh,String jcrId){
        // 构建查询条件
        Query query = new Query();
        if (type>0) {
            query.addCriteria(new Criteria("type").is(type));
        }
        if (null != bsbh && !bsbh.equals("")) {
            query.addCriteria(new Criteria("bsbh").is(bsbh));
        }
        if (null != sbbh && !sbbh.equals("")) {
            query.addCriteria(new Criteria("sbbh").is(sbbh));
        }

        if(null !=jcrId && !"".equals(jcrId)){
            Criteria criteria2 = new Criteria();
            //检测人等于
            criteria2.orOperator(Criteria.where("respirator.jcrId").is(jcrId), Criteria.where("cylinders.jcrId").is(jcrId));
            query.addCriteria(criteria2);
        }


        query.limit(pageSize).skip(pageNum);
        query.with(Sort.by(Sort.Order.desc("addTime")));
        List<Sample> list = mongoTemplate.find(query, Sample.class, Sample.TableName); // 取得满足条件的数据
        return list;
    }

    /**
     * 查询面罩列表     根据条件
     * @param pageNum
     * @param pageSize
     * @param type
     * @param bsbh
     * @param qpbsh
     * @param sbbh
     * @return
     */
    public List<Sample>  getSampleListZt(int pageNum, int pageSize, int type,String bsbh,String qpbsh, String sbbh,String rwdbh){
        // 构建查询条件
        Query query = new Query();
        if (type>0) {
            query.addCriteria(new Criteria("type").is(type));
        }
        if (null != bsbh && !bsbh.equals("")) {
            query.addCriteria(new Criteria("bsbh").is(bsbh));
        }
        if (null != qpbsh && !qpbsh.equals("")) {
            query.addCriteria(new Criteria("respirator.qpbsh").is(qpbsh));
        }

        if (null != sbbh && !sbbh.equals("")) {
            query.addCriteria(new Criteria("sbbh").is(sbbh));
        }

        if (null != rwdbh && !rwdbh.equals("")) {
            query.addCriteria(new Criteria("rwdbh").is(rwdbh));
        }



        query.limit(pageSize).skip(pageNum);
        query.with(Sort.by(Sort.Order.desc("addTime")));
        List<Sample> list = mongoTemplate.find(query, Sample.class, Sample.TableName); // 取得满足条件的数据
        return list;
    }


    /**
     * 补打二维码 查询列表  分页
     * @param bsbh
     * @param sbbh
     * @return
     */
    public long getSampleListZtTotle(String bsbh,int type ,String qpbsh,String sbbh,String rwdbh){
        // 构建查询条件
        Query query = new Query();
        if (null != bsbh && !bsbh.equals("")) {
            query.addCriteria(new Criteria("bsbh").is(bsbh));
        }
        if ( type>0) {
            query.addCriteria(new Criteria("type").is(type));
        }
        if (null != qpbsh && !qpbsh.equals("")) {
            query.addCriteria(new Criteria("respirator.qpbsh").is(qpbsh));
        }
        if (null != sbbh && !sbbh.equals("")) {
            query.addCriteria(new Criteria("sbbh").is(sbbh));
        }

        if (null != rwdbh && !rwdbh.equals("")) {
            query.addCriteria(new Criteria("rwdbh").is(rwdbh));
        }

        List<Sample> list = mongoTemplate.find(query, Sample.class, Sample.TableName); // 取得满足条件的数据
        return list.size();
    }


    /**
     * 补打二维码 查询列表  分页
     * @param bsbh
     * @param sbbh
     * @return
     */
    public long getSampleListPdewmTotle(String bsbh,int type ,String sbbh,String jcrId){
        // 构建查询条件
        Query query = new Query();
        if (null != bsbh && !bsbh.equals("")) {
            query.addCriteria(new Criteria("bsbh").is(bsbh));
        }
        if ( type>0) {
            query.addCriteria(new Criteria("type").is(type));
        }
        if (null != sbbh && !sbbh.equals("")) {
            query.addCriteria(new Criteria("sbbh").is(sbbh));
        }

        if(null !=jcrId && !"".equals(jcrId)){
            Criteria criteria2 = new Criteria();
            //检测人等于
            criteria2.orOperator(Criteria.where("respirator.jcrId").is(jcrId), Criteria.where("cylinders.jcrId").is(jcrId));
            query.addCriteria(criteria2);
        }
        List<Sample> list = mongoTemplate.find(query, Sample.class, Sample.TableName); // 取得满足条件的数据
        return list.size();
    }



    /**
     * 查询总条数
     * @param bsbh   标识编号
     * @param erweima  二维码
     * @param type  样品类型  1：呼吸器  2: 复合气瓶
     * @param sampleStatue    设备状态   1：已接受   2：检测中 3：检测不合格 4：合格 5：维修中 6:已废弃
     * @param wtfId  委托方id
     * @param sbbh  设备编号
     * @return
     */
    public long getSampleListTotle(String bsbh,String erweima,int type,int sampleStatue,int wtfId,int wtfIdChi,String sbbh,String zzcsId,String rwdbh,String jcrId){
        // 构建查询条件
        Query query = new Query();
        if (null != bsbh && !bsbh.equals("")) {
            query.addCriteria(new Criteria("bsbh").is(bsbh));
        }
        if (null != erweima && !erweima.equals("")) {
            query.addCriteria(new Criteria("erweima").is(erweima));
        }

        if(type != 0){
            query.addCriteria(new Criteria("type").is(type));
        }

        if(sampleStatue>0){
            query.addCriteria(new Criteria("sampleStatue").is(sampleStatue));
        }
        if(wtfId>0){
            query.addCriteria(new Criteria("wtfId").is(wtfId));
        }
        if(wtfIdChi>0){
            query.addCriteria(new Criteria("wtfIdChi").is(wtfIdChi));
        }


        if(null != sbbh  && !sbbh.equals("")){
            query.addCriteria(new Criteria("sbbh").is(sbbh));
        }

        if(null != zzcsId  && !zzcsId.equals("")){
            query.addCriteria(new Criteria("zzcsId").is(zzcsId));
        }
        if(null != rwdbh  && !rwdbh.equals("")){
            query.addCriteria(new Criteria("rwdbh").is(rwdbh));
        }

        if(null !=jcrId && !"".equals(jcrId)){
            Criteria criteria2 = new Criteria();
            //检测人等于
            criteria2.orOperator(Criteria.where("respirator.jcrId").is(jcrId), Criteria.where("cylinders.jcrId").is(jcrId));
            query.addCriteria(criteria2);
        }

        List<Sample> list = mongoTemplate.find(query, Sample.class, Sample.TableName); // 取得满足条件的数据
        return list.size();
    }


    /**
     * 查询总条数
     * @param bsbh   标识编号
     * @param erweima  二维码
     * @param type  样品类型  1：呼吸器  2: 复合气瓶
     * @param sampleStatue    设备状态   1：已接受   2：检测中 3：检测不合格 4：合格 5：维修中 6:已废弃
     * @param wtfId  委托方id
     * @param sbbh  设备编号
     * @return
     */
    public long getSampleMeListTotle(String bsbh,String erweima,int type,int sampleStatue,int wtfId,int wtfIdChi,String sbbh,String zzcsId,String jcrId,String rwdbh ){
        // 构建查询条件
        Query query = new Query();
        if (null != bsbh && !bsbh.equals("")) {
            query.addCriteria(new Criteria("bsbh").is(bsbh));
        }
        if (null != erweima && !erweima.equals("")) {
            query.addCriteria(new Criteria("erweima").is(erweima));
        }



        if(type != 0){
            query.addCriteria(new Criteria("type").is(type));
        }

        if(sampleStatue>0){
            query.addCriteria(new Criteria("sampleStatue").is(sampleStatue));
        }
        if(wtfId>0){
            query.addCriteria(new Criteria("wtfId").is(wtfId));
        }

        if(wtfIdChi>0){
            query.addCriteria(new Criteria("wtfIdChi").is(wtfIdChi));
        }

        if(null != sbbh  && !sbbh.equals("")){
            query.addCriteria(new Criteria("sbbh").is(sbbh));
        }

        if(null != zzcsId  && !zzcsId.equals("")){
            query.addCriteria(new Criteria("zzcsId").is(zzcsId));
        }

        if(null != rwdbh  && !rwdbh.equals("")){
            query.addCriteria(new Criteria("rwdbh").is(rwdbh));
        }

        Criteria criteria = new Criteria();
        criteria.orOperator(Criteria.where("respirator.jcrId").is(jcrId), Criteria.where("cylinders.jcrId").is(jcrId));
        query.addCriteria(criteria);


        List<Sample> list = mongoTemplate.find(query, Sample.class, Sample.TableName); // 取得满足条件的数据
        return list.size();
    }


    /**
     * 查询7日新增数量
     * @param mtime
     * @return
     */
    public List<Sample> befaultxDate(long mtime,int type) {
        // 构建查询条件
        Query query = new Query();
        query.addCriteria(new Criteria("type").is(type));
        query.addCriteria(new Criteria("addTime").gt(mtime));
        List<Sample> list = mongoTemplate.find(query, Sample.class, Sample.TableName); // 取得满足条件的数据
        return list;
    }





    /**
     * 查询7日新增数量
     * @param mtime
     * @return
     */
    public List<Sample> befaultxDate2(long mtime) {
        // 构建查询条件
        Query query = new Query();
        query.addCriteria(new Criteria("addTime").gt(mtime));
        List<Sample> list = mongoTemplate.find(query, Sample.class, Sample.TableName); // 取得满足条件的数据
        return list;
    }


    /**
     * 查询为分配的 任务的 样品
     * @param bsbh   标识编号
     * @param type  样品类型  1：呼吸器  2: 复合气瓶
     * @return
     */
    public List<Sample>  getSampleListWorkAll(String bsbh, int type){
        // 构建查询条件
        Query query = new Query();
        if (null != bsbh && !bsbh.equals("")) {
            query.addCriteria(new Criteria("bsbh").is(bsbh));
        }

        if(type != 0){
            query.addCriteria(new Criteria("type").is(type));
        }

        Criteria criteria = new Criteria();
        criteria.orOperator(Criteria.where("respirator.jcrId").is(""), Criteria.where("cylinders.jcrId").is(""));
        query.addCriteria(criteria);

        query.with(Sort.by(Sort.Order.desc("addTime")));
        List<Sample> list = mongoTemplate.find(query, Sample.class, Sample.TableName); // 取得满足条件的数据
        return list;
    }



    public long getCount(){
        Query query = new Query();
        long count = mongoTemplate.count(query, Sample.TableName);
        return count;
    }




    /**
     * 有多少气瓶是充了气的
     * 查询在这些 标识编号列表 里面  是重启的设备
     * @return
     */
    public List<Sample> getReportByrwdbhOrCqBath(List<String> bsbhList){
        // 构建查询条件
        Query query = new Query();
        query.addCriteria(new Criteria("type").is(2));
        query.addCriteria(Criteria.where("bsbh").in(bsbhList));
        query.addCriteria(new Criteria("cylinders.sfcq").is(1));
        List<Sample> list = mongoTemplate.find(query, Sample.class, Sample.TableName); // 取得满足条件的数据
        return list;

    }




    /**
     * 根据  根据类型和 标识编号的id列表批量查询
     * @param bsbhList  标识编号列表
     * @param type
     * @return
     */
    public List<Sample> getReportByBatch(List<String> bsbhList, int type){
        // 构建查询条件
        Query query = new Query();
        query.addCriteria(new Criteria("type").is(type));
        query.addCriteria(Criteria.where("bsbh").in(bsbhList));

        query.with(Sort.by(Sort.Order.asc("pxzd"),Sort.Order.asc("bsbh")));

        List<Sample> list = mongoTemplate.find(query, Sample.class, Sample.TableName); // 取得满足条件的数据
        return list;
    }



    /**
     *  批量查询是充气的 气瓶
     * @param bsbhList  标识编号列表
     * @return
     */
    public List<Sample> getReportByBatchCq(List<String> bsbhList){
        // 构建查询条件
        Query query = new Query();
        //类型是气瓶
        query.addCriteria(new Criteria("type").is(2));
        //条件是充气的
        query.addCriteria(Criteria.where("cylinders.sfcq").is(1));
        query.addCriteria(Criteria.where("bsbh").in(bsbhList));
        List<Sample> list = mongoTemplate.find(query, Sample.class, Sample.TableName); // 取得满足条件的数据
        return list;
    }




}
